home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tools
/
mg
/
src.lzh
/
amiga
/
ttydef.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-05-23
|
3KB
|
137 lines
/*
* Name: MicroEMACS Amiga console device virtual terminal header file
* Version: MG 2a Last edit: 28-Nov-87
* ...!seismo!ut-sally!ut-ngp!mic (mic@emx.cc.utexas.edu) Created:
* 20-Apr-86 ...!seismo!ut-sally!ut-ngp!mic
*/
#define TOP_OFFSET 11 /* # raster lines from top of window */
#ifndef LR_BORDER
#define LR_BORDER (3 + 20) /* Vertical border size (pixels) */
#endif
#ifndef TB_BORDER
#define TB_BORDER (TOP_OFFSET + 2) /* Horizontal border size (pixels) */
#endif
/*
* Function key codes (using 16-bit KEY values)
*/
#define KFIRST 0x100
#define KUP 0x100
#define KDOWN 0x101
#define KLEFT 0x102
#define KRIGHT 0x103
#define KSUP 0x104
#define KSDOWN 0x105
#define KSLEFT 0x106
#define KSRIGHT 0x107
#define KF1 0x108
#define KF2 0x109
#define KF3 0x10A
#define KF4 0x10B
#define KF5 0x10C
#define KF6 0x10D
#define KF7 0x10E
#define KF8 0x10F
#define KF9 0x110
#define KF10 0x111
#define KSF1 0x112
#define KSF2 0x113
#define KSF3 0x114
#define KSF4 0x115
#define KSF5 0x116
#define KSF6 0x117
#define KSF7 0x118
#define KSF8 0x119
#define KSF9 0x11A
#define KSF10 0x11B
#define KHELP 0x11C
#define KMENU 0x11D
#define KRESIZE 0x11E
#define KW___MOUSE 0x120
#define KW__CMOUSE 0x121
#define KW_S_MOUSE 0x122
#define KW_SCMOUSE 0x123
#define KWA__MOUSE 0x124
#define KWA_CMOUSE 0x125
#define KWAS_MOUSE 0x126
#define KWASCMOUSE 0x127
#define KM___MOUSE 0x128
#define KM__CMOUSE 0x129
#define KM_S_MOUSE 0x12A
#define KM_SCMOUSE 0x12B
#define KMA__MOUSE 0x12C
#define KMA_CMOUSE 0x12D
#define KMAS_MOUSE 0x12E
#define KMASCMOUSE 0x12F
#define KE___MOUSE 0x130
#define KE__CMOUSE 0x131
#define KE_S_MOUSE 0x132
#define KE_SCMOUSE 0x133
#define KEA__MOUSE 0x134
#define KEA_CMOUSE 0x135
#define KEAS_MOUSE 0x136
#define KEASCMOUSE 0x137
#define KLAST KEASCMOUSE
/*
* Mouse key encoding stuff... The bit fields are:
*
* 4 3 2 1 0
* | where | ALT | SHIFT | CTRL
*
* Where ALT, SHIFT, and CTRL indicate qualifiers, and the 2-bit where field
* indicates whether the click was (initially) in a window, a mode line, or
* the echo line. The mouse functions are smart enough to remap themselves
* if necessary; we implement these as keys so users can rebind things to
* their taste.
*/
#define M_X_ZERO ' '
#define M_Y_ZERO ' '
#define MQ_OFFSET 0x40
#define MQ_NOQUAL 0x00
#define MQ_CTRL 0x01
#define MQ_SHIFT 0x02
#define MQ_ALT 0x04
#define MQ_WINDOW 0x00
#define MQ_MODE 0x08
#define MQ_ECHO 0x10
#define MQ_WHERE(m) (m & 0x18) /* get where field */
#define MQ_QUALS(m) (m & 0x07) /* get qualifier field */
/*
* Intuition menu interface. Each set of menu items kept in a table of
* MenuBinding structures, which is in turn kept in a table of MenuInfo
* structures. These tables are indexed via the menu and item numbers to find
* the internal extended name of the function associated with a certain item.
*/
#define MN_OFFSET ' ' /* menu char - ' ' = real code */
struct MenuBinding {
char *Command;
int (*Function) ();
};
struct MenuInfo {
char *Name; /* name of menu */
short NumItems; /* # of items */
struct MenuBinding *Items; /* item name, internal binding */
};
#define NITEMS(arr) (sizeof(arr) / (sizeof(arr[0])))
/*
* Return the width and height of the default font for a window.
*/
#define FontWidth(w) (w)->RPort->TxWidth
#define FontHeight(w) (w)->RPort->TxHeight